#pragma once

namespace ui
{
	class IPopWindow
	{
		virtual std::wstring GetPopSkinFolder() override = 0;
	};

	class DragPopWindow : public WindowImplBase
	{
	public:
		static DragPopWindow *CreateAndShow(Box* pBox, std::wstring SkinFolder = L"");
	protected:
		DragPopWindow(Box* pBox) :m_pBox(pBox) { 
			m_SkinFolder = L"drag_pop_window";
			m_SkinFile = L"drag_pop_window.xml";
		};
		virtual ~DragPopWindow(){};

		virtual std::wstring GetSkinFolder() override{ return m_SkinFolder; };
		virtual std::wstring GetSkinFile() override{ return m_SkinFile; };
		virtual std::wstring GetWindowClassName(void) const override{ return kClassName; };

		virtual void InitWindow() override;
	public :
		const std::wstring kClassName = L"DragPopWindow";
	protected:
		Box *m_pBox = nullptr;
		std::wstring m_SkinFolder;
		std::wstring m_SkinFile;
	};

};



